package com.qf.starter.config;

import com.qf.starter.utils.SwaggerFileAppender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;

/**
 * Starter依赖 = Maven传递依赖 + Springboot自动配置机制
 *
 * Maven传递依赖：Starter依赖会将所需的其他依赖都引入使用了starter依赖的项目
 * Springboot自动配置机制：
 * 1. Springboot程序启动时会扫描所有jar包的META-INF目录，寻找spring.factories配置文件
 * 2. 加载 org.springframework.boot.autoconfigure.EnableAutoConfiguration 对应的配置类
 * 3. 将配置类中的bean添加到ioc容器中
 * */

@Configuration
@EnableConfigurationProperties(SwaggerProperties.class)
public class SwaggerAutoConfigure {

    @Autowired
    SwaggerProperties swaggerProperties;

    @Bean
    public SwaggerFileAppender qfFileAppender() throws IOException {

        SwaggerFileAppender qfFileAppender = new SwaggerFileAppender();

        qfFileAppender.setFilepath(swaggerProperties.getFilepath());

        return qfFileAppender;
    }
}
